

#include <demo_saf/Demo_SaFE.h>





	// ******************* CONSTRUCTOR ************************************



Demo_SaF::Demo_SaF(const char * const roomname,TEDROOMComponentID id, unsigned int roomNumMaxMens, TEDROOMPriority roomtaskPrio, TEDROOMStackSizeType roomStack, CEDROOMMemory *pActorMemory ) : 
		CEDROOMComponent(roomname,id,EDROOMprioMINIMUM+1,7,roomNumMaxMens,roomtaskPrio,roomStack, pActorMemory )




		// ***************	Estado Top *****************

		,edroomTopState(*this)


{


}


	//***************	METODOS PUBLICOS  ********************************



		//**********           CONFIGURACION               ************


int Demo_SaF::EDROOMConfig() {




 return 0; }



		//**********           START               ************


int Demo_SaF::EDROOMStart() {



		//****************** INICIO DEL PROPIO ACTOR **********************

	CEDROOMComponent::EDROOMStart(); 	// Llamada a la funcion Start de la clase Actor

return 0;}


	// ***************	METODOS PROTEGIDOS *******************************



		//**********        COMPORTAMIENTO           ************



void Demo_SaF::EDROOMBehaviour() {

	edroomTopState.EDROOMBehaviour();

}




		//**********        ACTORTERMINADO           ************


	#ifdef _EDROOM_SYSTEM_CLOSE

TEDROOMBool Demo_SaF::EDROOMIsComponentFinished() {


	return ( SensorDemo.EDROOMIsComponentFinished() && SSI.EDROOMIsComponentFinished() && EmuTMTCServer.EDROOMIsComponentFinished() && EmuGS.EDROOMIsComponentFinished() && SGI.EDROOMIsComponentFinished() && EmuPlanner.EDROOMIsComponentFinished() && CEDROOMComponent::EDROOMIsComponentFinished());

}


	#endif

	//**************      FUNCIONES DE TRATAMIENTO DE SE�ALES   *****************
//
//
//int Demo_SaF::EDROOM_Union6_1( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CAEmuPlanner::SKeepOnComm):	 SenalIn=CASGI::SKeepOnComm; break;
//
//		case( CAEmuPlanner::SToStandBy):	 SenalIn=CASGI::SToStandBy; break;
//
//		case( CAEmuPlanner::STMToTransmit):	 SenalIn=CASGI::STMToTransmit; break;
//
//		case( CAEmuPlanner::SToComm):	 SenalIn=CASGI::SToComm; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union6_2( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CASGI::SInStandBy):	 SenalIn=CAEmuPlanner::SInStandBy; break;
//
//		case( CASGI::STMTransmited):	 SenalIn=CAEmuPlanner::STMTransmited; break;
//
//		case( CASGI::SCommConfigured):	 SenalIn=CAEmuPlanner::SCommConfigured; break;
//
//		case( CASGI::STCReceived):	 SenalIn=CAEmuPlanner::STCReceived; break;
//
//		case( CASGI::SCommInterrupted):	 SenalIn=CAEmuPlanner::SCommInterrupted; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union7_1( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union7_2( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( Demo_SaF::SToListening):	 SenalIn=CASSI::SToListening; break;
//
//		case( Demo_SaF::SToStandBy):	 SenalIn=CASSI::SToStandBy; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union5_1( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CAEmuGS::SNoAnswer):	 SenalIn=CASGI::SNoAnswer; break;
//
//		case( CAEmuGS::SRxBurst):	 SenalIn=CASGI::SRxBurst; break;
//
//		case( CAEmuGS::SRxDataBurst):	 SenalIn=CASGI::SRxDataBurst; break;
//
//		case( CAEmuGS::SAnswer):	 SenalIn=CASGI::SAnswer; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union5_2( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CASGI::STxBurst):	 SenalIn=CAEmuGS::STxBurst; break;
//
//		case( CASGI::STxDataBurst):	 SenalIn=CAEmuGS::STxDataBurst; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union4_1( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CAEmuTMTCServer::EmuGSDoublePackList):	 SenalIn=CAEmuGS::EmuGSDoublePackList; break;
//
//		case( CAEmuTMTCServer::STMTCPackList):	 SenalIn=CAEmuGS::STMTCPackList; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union4_2( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CAEmuGS::STMDoublePackList):	 SenalIn=CAEmuTMTCServer::STMDoublePackList; break;
//
//		case( CAEmuGS::SFinalTCPackets):	 SenalIn=CAEmuTMTCServer::SFinalTCPackets; break;
//
//		case( CAEmuGS::STCPackList):	 SenalIn=CAEmuTMTCServer::STCPackList; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union3_1( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CASSI::SNextSensorSsiDataFrame):	 SenalIn=CAEmuTMTCServer::SNextSensorSsiDataFrame; break;
//
//		case( CASSI::SDataFrame):	 SenalIn=CAEmuTMTCServer::SDataFrame; break;
//
//		case( CASSI::SSignalFrame):	 SenalIn=CAEmuTMTCServer::SSignalFrame; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union3_2( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CAEmuTMTCServer::SNextSensorSsiDataFrame):	 SenalIn=CASSI::SNextSensorSsiDataFrame; break;
//
//		case( CAEmuTMTCServer::SDataFrame):	 SenalIn=CASSI::SDataFrame; break;
//
//		case( CAEmuTMTCServer::SSignalFrame):	 SenalIn=CASSI::SSignalFrame; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union2_1( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CAEmuTMTCServer::EmuGSDoublePackList):	 SenalIn=CASGI::EmuGSDoublePackList; break;
//
//		case( CAEmuTMTCServer::STMTCPackList):	 SenalIn=CASGI::STMTCPackList; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union2_2( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CASGI::STMDoublePackList):	 SenalIn=CAEmuTMTCServer::STMDoublePackList; break;
//
//		case( CASGI::SFinalTCPackets):	 SenalIn=CAEmuTMTCServer::SFinalTCPackets; break;
//
//		case( CASGI::STCPackList):	 SenalIn=CAEmuTMTCServer::STCPackList; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union_1( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CASSI::SDataFrame):	 SenalIn=CASensorDemo::SDataFrame; break;
//
//		case( CASSI::SSignalFrame):	 SenalIn=CASensorDemo::SSignalFrame; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}
//
//
//int Demo_SaF::EDROOM_Union_2( int SenalOut){
//
//	int SenalIn;
//
//	switch(SenalOut){
//
//		case( CASensorDemo::SDataFrame):	 SenalIn=CASSI::SDataFrame; break;
//
//		case( CASensorDemo::SSignalFrame):	 SenalIn=CASSI::SSignalFrame; break;
//
//		default: SenalIn=-1; break;
//
//	}
//
//
//	return SenalIn;
//
//}


	// ***************	EDROOM Memory ******************************

void Demo_SaF::CEDROOMMemory::SetMemory(TEDROOMUInt32 numMessages_, CEDROOMMessage * MessagesMem_, TEDROOMBool * MessagesMemMarks_, CEDROOMQueue::CQueueNode * QueueNodesMem_, TEDROOMBool * QueueNodesMemMarks_){
		CEDROOMComponentMemory::SetMemory( numMessages_,MessagesMem_, MessagesMemMarks_, QueueNodesMem_, QueueNodesMemMarks_, QueueHeads);

//	SensorDemoMemory.SetMemory(100,SensorDemoMessages, &	SensorDemoMessagesMarks[0],SensorDemoQueueNodes,&SensorDemoQueueNodesMarks[0]);
//
//	SSIMemory.SetMemory(100,SSIMessages, &	SSIMessagesMarks[0],SSIQueueNodes,&SSIQueueNodesMarks[0]);
//
//	EmuTMTCServerMemory.SetMemory(10,EmuTMTCServerMessages, &	EmuTMTCServerMessagesMarks[0],EmuTMTCServerQueueNodes,&EmuTMTCServerQueueNodesMarks[0]);
//
//	EmuGSMemory.SetMemory(10,EmuGSMessages, &	EmuGSMessagesMarks[0],EmuGSQueueNodes,&EmuGSQueueNodesMarks[0]);
//
//	SGIMemory.SetMemory(10,SGIMessages, &	SGIMessagesMarks[0],SGIQueueNodes,&SGIQueueNodesMarks[0]);
//
//	EmuPlannerMemory.SetMemory(10,EmuPlannerMessages, &	EmuPlannerMessagesMarks[0],EmuPlannerQueueNodes,&EmuPlannerQueueNodesMarks[0]);


}

